package edu.java基础;

public class O_方法 {
    //方法不能嵌套定义
    public static void main(String[] args) {
        eat();  //执行方法
        isEvenNumber(10);  //10是实参,调用方法时给的数据
        int num = 10;
        isEvenNumber(num);
        int i = getMax(10, 20);  //接收返回值
        System.out.println(getMax(10, 20));  //输出调用
        int a=10;int b=20;
        //long a=10;long b=20;
        //short a=10;short b=20;
        //byte a=10;byte b=20;
        System.out.println(compare(10,20));   //方法重载
    }

    //定义方法
    public static void eat() {
        study();
        System.out.println("吃饭");
    }

    public static void study() {
        System.out.println("学习");
    }

    //方法在没有调用的时候，都在方法区中的字节码文件（.class）中储存,被调用时需要进入栈内存中运行
    //方法进栈：先进后出
    public static void isEvenNumber(int num) {  //num是形参
        if (num % 2 == 0) {
            System.out.println("偶数");
        } else {
            System.out.println("奇数");
        }
    }  //void方法一般没有返回


    //设计一个方法可以获取两个数的较大值，数据来自参数
    public static int getMax(int a, int b) {
        if (a > b) {
            return a;
        } else {
            return b;
            //System.out.println("无法执行的代码");  return后面都是不能执行的代码，会报错
        }
    }

    //void的return;提升执行效率
    //输出整数n到整数m之间的奇数
    public static void print(int n, int m) {
        if (m < n) {
            System.out.println("您传入的数据有误，请检查");
            return;  //结束方法，把方法从栈里弹出,该过程称为方法的弹栈
        }
        System.out.println(n + "到" + m + "之间的奇数为：");
        for (int i = n; i <= m; i++) {
            if (i % 2 == 0) {
                System.out.println(i);
            }
        }
    }

    //方法重载：方法之间的关系，与返回值无关
    //在同一个类中：方法名相同，参数不同的方法也可以存在，它们会构成重载关系
    //参数不同：个数不同、类型不同、顺序不同
    //使用方法重载，比较两个整数是否相同，要求兼容全整数类型（byte,short,int,long）
    public static boolean compare(int a,int b){
        return a==b;
    }
    public static boolean compare(byte a,byte b){
        return a==b;
    }
    public static boolean compare(long a,long b){
        return a==b;
    }
    public static boolean compare(short a,short b){
        return a==b;
    }




}
